// 数据请求文件
import axios from "axios"

axios.defaults.baseURL = "http://www.520gongfu.com:9527/api"
// 将表单格式的数据与对象形式的数据，相互转换
import qs from "qs"

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 设置 请求 头中的token
    const token = sessionStorage.getItem('token')
    if (token) {
        // 存在token，就把token添加到请求头中
        config.headers['Authorization'] = token
    }
    // 发送请求之前做些什么
    return config
}, function (error) {
    return Promise.reject(error)
})




// 请求轮播数据
export const getSlider = (callback) => {
    axios.get('/home/sliders').then((res) => {
        // console.log(res.data.data);
        callback && callback(res)
    })
        .catch((err) => {
            console.log(err);
        })
}

//请求首页  分类数据
export const getCategory = (callback) => {
    axios.get('/home/category').then((res) => {
        // console.log(res.data.data);
        callback && callback(res)
    })
        .catch((err) => {
            console.log(err);
        })
}

// 请求首页  推荐商品的数据信息
export const getFloorlist = (callback) => {
    axios.get('/home/floorlist').then(res => {
        callback && callback(res)
    })
        .catch((err) => {
            console.log(err);
        })
}

// 获取分类数据
export const getCategoryData = (callback) => {
    axios.get('/category/data').then(res => {
        callback && callback(res)
    })
        .catch((err) => {
            console.log(err);
        })
}

// 获取列表数据，
export const getProductList = (paramt, callback) => {
    axios.get('/product/list', {
        // 这是配置对象，config，get请求表单形式提交参数  
        params: paramt,  //参数

        // 参数的序列化形式 （格式化）
        paramsSerializer: function (params) {
            return qs.stringify(params)
        }


    }).then(res => {
        callback && callback(res)
    })
        .catch((err) => {
            console.log(err);
        })
}

// 登录请求
export const getLogin = (paramt, callback) => {
    axios.post('/user/login', qs.stringify(paramt)).then(res => {
        const { data } = res
        callback && callback(data)
    })
        .catch((err) => {
            console.log(err);
        })
}

// 获取用户信息
// 头部已经进行了token封装
export const getUserInfo = (callback) => {
    axios.get('/user/info').then((res) => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

// 获取推荐商品/product/recommend
// 头部已经进行了token封装
export const getRecommend = (callback) => {
    axios.get('/product/recommend').then((res) => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

// 获取购物车数据/cart/list
export const getCartList = (callback) => {
    axios.get('/cart/list').then((res) => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

// 删除购物车数据/cart/del
export const delCar = (params, callback) => {
    axios.post('/cart/del', qs.stringify(params)).then((res) => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

// 添加购物数据 /cart/add
export const carAdd = (params, callback) => {
    axios.post('/cart/add', qs.stringify(params)).then((res) => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}

// 获取商品详情信息
export const getProductDetail = (paramt, callback) => {
    // get请求传递参数，需要配置序列化项
    axios.get('/product/detail', {
        // 这是配置对象，config，get请求表单形式提交参数  
        params: paramt,  //参数
        // 参数的序列化形式 （格式化）
        paramsSerializer: function (params) {
            return qs.stringify(params)
        }
    }).then((res) => {
        callback && callback(res.data)
    }).catch(err => {
        console.log(err);
    })
}
